Achievement Notification Queue with Configurable Delay#522
Merged
Conversation
Detanup01
reviewed
May 20, 2026
Detanup01
reviewed
May 20, 2026
Contributor
Author
|
Fixed both issues - removed errant < character and merge conflict marker. Ready for review. |
Comment on lines
+1597
to
+1606
|
|
||
| // Achievement notification delay (in seconds, converted to milliseconds) | ||
| { | ||
| auto val = ini.GetLongValue("overlay::general", "Achievement_Notification_Delay", -1); | ||
| if (val >= 0) { | ||
| settings_client->achievement_notification_delay_ms = static_cast<int>(val * 1000); | ||
| settings_server->achievement_notification_delay_ms = static_cast<int>(val * 1000); | ||
| PRINT_DEBUG("Setting achievement notification delay to %i ms", settings_client->achievement_notification_delay_ms); | ||
| } | ||
| } |
Collaborator
There was a problem hiding this comment.
What are these for? I suppose they are code leftover or something, since they look like to be redundant and are not mentioned in EXAMPLE.ini changes.
dasafe
added a commit
to dasafe/gbe_fork
that referenced
this pull request
May 23, 2026
…y_general_config The Achievement_Notification_Delay setting is already parsed in load_overlay_appearance() (reading from [overlay::appearance] section using std::stof for proper float handling). The duplicate block in parse_overlay_general_config() used GetLongValue which truncates decimal values and read from the wrong INI section. Resolves review feedback from universal963 on PR Detanup01#522.
a7605ce to
4bfa98b
Compare
- Add achievement_notification_delay_ms setting to Settings class - Parse Achievement_Notification_Delay from configs.overlay.ini (in seconds) - Implement rate-limiting queue with scheduled_show_time tracking - Queue processes achievements based on minimum delay between starts - Default delay is 0 (no delay/simultaneous display) Test cases verified: - Simultaneous burst with spacing - Trigger within delay window (throttled) - Trigger after delay window passed (immediate) - Default behavior (delay=0) - Long chain stacking - Mixed stacking with catch-up - Mass burst with 0 delay - Spaced out burst
…y_general_config The Achievement_Notification_Delay setting is already parsed in load_overlay_appearance() (reading from [overlay::appearance] section using std::stof for proper float handling). The duplicate block in parse_overlay_general_config() used GetLongValue which truncates decimal values and read from the wrong INI section. Resolves review feedback from universal963 on PR Detanup01#522.
4bfa98b to
c223a83
Compare
Owner
|
y'all and your force pushes |
universal963
approved these changes
May 26, 2026
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description:
Add a rate-limiting queue system for achievement notifications with configurable delay.
How It Works
Before: Achievement notifications were shown immediately when triggered, with sound playing at trigger time.
After:
New Settings
How It Works
This prevents notification spam and ensures users actually see and hear each achievement.
Changes